package com.framework.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.framework.entity.flow.FlowActiv;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 功能描述: 返现流水
 *
 * @author ck
 * @date 2018/9/6 13:54
 */
public interface FlowActivDao extends BaseMapper<FlowActiv> {
	/**
	 * 查询列表
	 * @param flowActiv 对象
	 * @param pageNo 分页码
	 * @return
	 */
	List<FlowActiv> queryFlowActivList(@Param("ex") FlowActiv flowActiv, @Param("pageNo") Integer pageNo);

	/**
	 * 激活返现
	 * @param agentId
	 * @return
	 */
	BigDecimal activAmountSum(@Param("agentId") Long agentId);
	/**
	 * 月激活返现金额
	 * @param agentId
	 * @return
	 */
	BigDecimal activAmountMonthSum(@Param("agentId") Long agentId,@Param("monthTime") String monthTime);
	/**
	 * 本月激活返现
	 * @param agentId
	 * @return 当月激活金额
	 */
	BigDecimal getThisMonthAmount(@Param("agentId") Long agentId);
	/**
	 * 激活返现明细
	 * @param agentId 代理商id
	 * @param monthTime 时间
	 * @return
	 */
	List<Map<String,Object>> queryActivInfoList(@Param("agentId") Long agentId,@Param("monthTime") String monthTime);

	/**
	 * 获取代理商每一天的激活返现明细
	 * @param agentId 代理商id
	 * @param dayTime 时间 天
	 * @param deptId 渠道id
	 * @return
	 */
	List<Map<String,Object>> queryFlowActivDayList(@Param("agentId") Long agentId,@Param("dayTime") String dayTime,@Param("deptId") Long deptId);

	/**
	 * 查询所有返现记录
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> queryActivAgentList(Map<String,Object> params);

	/**
	 * 查询记录数，用于queryActivAgentList的分页
	 * @param params
	 * @return
	 */
	Integer queryActivAgentCount(Map<String,Object> params);

	/**
	 * 新增一条返现记录
	 * @param flowActiv
	 */
    void insertFlowActiv(@Param("ex") FlowActiv flowActiv);

	/**
	 * 删除一条记录
	 * @param activId
	 */
	void deleteFlowActivById(@Param("activId") String activId);

	/**
	 * 根据id查询记录
	 * @param activId
	 * @return
	 */
	Map<String,Object> queryActivAgentById(@Param("activId") String activId);


	/**
	 * 根据条件查询个人的激活返现列表
	 * @param params
	 * @return
	 */
    List<Map<String, Object>> queryActivByAgentId(Map<String, Object> params);
}
